using System;
using System.Collections.Generic;
using System.Text;

namespace Sedna.Core.Common.Objects.Navigation
{
    public interface IScopePathParser
    {
        IScopePath Parse(Scope scope, string keyAndPath);

        IScopePath Parse(Scope scope, Type objectType, string key, string path);

        IScopePath Parse(object rootObject, string path);

        /// <summary>
        /// Parses expression and creates appropriate NavigationNode instances.
        /// </summary>
        /// <param name="path">Expression to parse.</param>
        /// <returns>Parsed path.</returns>
        IScopePath Parse(string path);


        object GetScopedValue(Scope scope, string key);
        void SetScopedValue(Scope scope, string key, object value);
        
    }
}
